1. Field of the Invention
The present application is related to an agent system that executes an object having information on processing procedures and data under various communication environments where a variety of computers are interconnected. The object is sent to a particular computer as an "agent" and is executed at the destination computer.
2. Description of the Related Art
Recently, software technology using agent systems have become commonly known. The agent systems adopt a form of processing that executes the objects including data and programs (also termed processing order or procedure) and sends the object (also termed agent or network agent) to a particular computer. The agent described in the specification is not related to a broadly-defined software agent stationed inside a computer to perform a particular task. The agent in this specification is a network agent. The network agent is an agent that moves within the network, and, for example, searches information requested by a user or executes a pre-determined process. The invented agent is related to an object having identification information, processing procedures and data. The agent is matched with a particular communication environment to execute the agent at a computer or server system.
The agent of this type is disclosed in Japanese unexamined patent application no. hei7-182174 (corresponds to U.S. patent application Ser. No. 08/090521, application date Jul. 8, 1993) and is entitled "Reinforcement of remote programming" discloses a specification of the descriptive language of an agent called Telescript developed by General Magic Inc., as shown in FIGS. 16.about.18. FIG. 16 is a diagram on the configuration of computer system for the related art. FIG. 17 is a flow chart of operation using remote programming for the related art. FIG. 18 is a diagram showing a remote programming network for the related art.
According to Japanese unexamined patent application no. hei7-182174, mass memory 917A such as magnetic disk and magnetic tape are used to store a part of data or used to store a program that cannot be accommodated at main memory 917B due to a size limitation. Mass memory 917A is also used when the mass memory 917A is not required immediately by the program, data or CPU910. See pg. 12, column 21, lines 27.about.32.
Further, Japanese unexamined patent application no. hei7-182174 discloses a system demonstrated by Wolfson et al., in which a particular process moves from one computer system to an another computer system within a network. The process memorizes a data directly to a mass memory of computer system where the process is being executed, or searches for a data directly from the mass memory. See pg. 15, column 27, lines 7.about.9 and 20.about.23.
The flow chart in FIG. 17 illustrates a specific example of remote programming. In order to implement the specific example under the remote programming environment, a client process 9352 (FIG. 18) creates a program made from instructions as indicated on the detailed flow chart in step 931 (FIG. 17). The detail of step 931 is explained below.
The process advances from create remote program step 931 to send remote program step 932. The remote program is sent to a computer 930B (FIG. 18) via a network 9356, as shown by the arrow 9358. The process advances to program execution remote step 933, and the program is executed by the computer 930B. This program execution is a process 9352A (FIG. 18) performed by computer 930B. As for the process 9352A, the instructions for program execution follows the flow chart displayed in step 931, accordingly.
In step 931-B (FIG. 17) a list of file names is created. Each filename in the list (of file names) is searched in a directory of computer 930B. If a file name matches with any file names in the list, 931-D, the file has not been updated within the last 30 days, 931-F, then the file is deleted in step 931-G. By sending an appropriate instructions to a server process 9354 (FIG. 18). The process returns to step 931-C from step 931-G (FIG. 17) via step 931-J to evaluate the next file name. When all of the files on the list are evaluated, the process 9352A terminates as shown at step 931-C and 931-K. As the arrow 9360 (FIG. 18) indicates, all the interactions between the process 9352A and the server process 9354 occur inside the computer 930B without having to interact with the network 9356.
After the program has been successfully completed, the process moves from the program execution in remote step 933 to receive report of program execution step 934 (FIG. 17). The server process 9354 (FIG. 18) reports the successful completion of the program to the client process 9352 as shown by the arrow 9362. The remote programming procedure uses the network transmission media only twice. The first use is shown by the arrow 9358 in which the list of instructions i.e. the program is transmitted to the server process 9354. The second use is shown by the arrow 9362 in which the client process 9352 receives a notification of successful completion from the server process 9354. See hei7-182174, pg. 14, columns 25 and 26.
The conventional technology discussed above discloses that the process stores a data directly in a mass memory of the computer system where the process is being executed, or searches for the data directly from the mass memory. Storing data in the mass memory refers to the storage of data for processing. There is no disclosure of the storage of the process itself or the storage of control information related to process execution.
As for the remote programming procedure, the server process 9354 reports the successful completion of program execution to the client process 9352. This reporting is understood as reporting a status of normality or abnormality in program completion, since there is no disclosure of tracing a status of program execution for interval reporting to a client. Also, there is no disclosure of storing the traced execution status. Furthermore, although the conventional technology discloses remote program transmission and remote program execution, the conventional technology does not reach storing the remote program to a backup storage (the mass memory) of a server. Because the conventional agent system does not store the object (agent) in a disk, the processing system is unable to re-execute the agent when the agent execution does not complete normally.
In the above mentioned system, the conventional agent cannot be used successfully in mission critical tasks because the system suffers from the following problems. First, because a log data which is determined by the agent execution is not stored on disk, the agent system is unable to enquire for an execution result from the log data. Second, the agent system is unable to find a processing path taken for an agent transmission. Third, the agent system is unable to ask for agent re-execution when the agent system is interrupted during agent execution. Fourth, the agent system does not have a re-try method to find the log data during an execution interruption to attempt to recover a database.
Finally, according to the conventional agent technology, an operation at the user terminal and the agent execution at the distant computer are not processed synchronously. For this reason, if a system malfunction occurs during the execution of a program, the user is unable to know about the damage outbreak or its content. For instance, if the agent becomes lost when collecting retrieval data from a server connected to internet, the damage is not very serious for the user. However, if an error occurs in the agent program that performs the transaction processing of a database, the damage will be huge for the user. Because of this disadvantage, the conventional agent technology cannot been used for programs or services involving important or mission critical transactions.